package com.wfy.common.listener;

import com.wfy.common.util.Const;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;

/**
 * 当spring 容器将所有的bean都初始化完成后调用
 * Created with IntelliJ IDEA.
 * User: wangxindong
 * Date: 2017/9/29
 * Time: 12:26
 */
public class InstantiationTracingBeanPostProcessor implements ApplicationListener<ContextRefreshedEvent> {

    // ================================================================
    // Constants
    // ================================================================

    // ================================================================
    // Fields
    // ================================================================

    // ================================================================
    // Constructors
    // ================================================================

    // ================================================================
    // Methods from/for super Interfaces or SuperClass
    // ================================================================

    /**
     * bean初始化完成之后调用
     *
     * @param event
     */
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        // 将applicationcontext的引用传递给const中全局变量
        Const.WEB_APP_CONTEXT = event.getApplicationContext();

        // 系统启动之后的操作
        //CacheUtils.put("1", 1);
    }


    // ================================================================
    // Public or Protected Methods
    // ================================================================


    // ================================================================
    // Getter & Setter
    // ================================================================

    // ================================================================
    // Private Methods
    // ================================================================


    // ================================================================
    // Inner or Anonymous Class
    // ================================================================

    // ================================================================
    // Test Methods
    // ================================================================

}
